1. Field of the Invention
The present invention relates to an architecture for use in interfacing with image acquisition devices. More specifically, the present invention relates to an architecture usable by both PC and non-PC devices to communicate with many types of image acquisition devices through a common interface.
2. Description of the Related Art
Modern home computing systems include peripheral devices and software applications produced by many different manufacturers. For example, a typical home computer includes word processing, image processing, and spreadsheet applications as well as peripheral devices such as printers, scanners and digital cameras, all of which may be produced by different manufacturers. For such applications and devices to be marketable, the manufacturers must ensure that each of the applications executing on the user""s computer can communicate with each of the peripheral devices.
Standardized interfaces have developed in order to facilitate this communication. These interfaces include functions that must be supported by complying peripheral devices and protocols for calling and executing the functions. Accordingly, in order to support an interface, a manufacturer of a peripheral device must simply provide a corresponding device driver, a piece of software code, which presents the functions of the interface to a requesting application, and which interacts with the peripheral device to provide the functions. On the other hand, because of the standardized interface, an application developer need only write code to access the particular functions using the particular protocols, and does not need to write code addressing any specific peripheral devices. The presented functions are commonly referred to as an Application Programming Interface (API).
One example of such an interface is the TWAIN interface, which was developed for use with scanning devices. As described above, TWAIN defines a set of functions and protocols which can be used by an application developer to access scanning devices, and which must be supported by TWAIN-compatible device drivers corresponding to particular scanning devices. A similar interface is provided by Windows Image Acquisition (WIA), an architecture which also defines a standardized interface between applications and scanning devices.
These currently-existing interfaces are unsatisfactory for several reasons. First, the interfaces are not platform-independent. Specifically, TWAIN is defined only for Macintosh and Windows platforms, and WIA is defined only for the Windows platform. This shortcoming is especially disadvantageous given the current trend of platform-independent computing and the emergence of non-PC devices, such as hand-held devices, personal digital assistants (PDAs) and set top boxes.
Moreover, TWAIN is defined only for image and sound acquisition and WIA is defined only for image and limited text acquisition. As a result, these interfaces cannot be used to easily access each of a wide range of image acquisition devices, including scanning devices, digital cameras, digital video devices and analog video devices.
One reason for the latter shortcoming is that conventional image acquisition devices often contain related data files. Specifically, a single xe2x80x9cpicturexe2x80x9d stored in a digital camera may consist of a full-resolution image file, a thumbnail image file and a sound file. However, image acquisition interfaces define, in object-oriented terms, one class representing an image acquisition device and a second class representing individual data files within the device. Accordingly, although it would often be useful to manipulate related data files as a single entity, conventional image acquisition interfaces do not provide any simple means for doing so.
In addition, image acquisition devices such as digital video cameras may include two separate storage devices, such as digital tape and a removable still image storage device. Since, as described above, conventional image acquisition interfaces define only a single class representing a device and a single class representing files within the device, the separate storage devices cannot be represented and managed individually using the conventional interfaces.
In view of the foregoing, what is needed is an image acquisition architecture which provides a common interface for accessing many types of imaging devices via both PC and non-PC devices.
The present invention addresses the foregoing by providing an image acquisition architecture including a device class representing a physical image acquisition device, a storage class representing storage areas of the image acquisition device, a package class representing a set of data files stored in a storage area of the image acquisition device, and an item class representing individual data files within the set of data files stored in the storage area of the image acquisition device.
By virtue of the foregoing, the present invention allows simple manipulation of many types of image acquisition devices. In particular, a digital camera can be represented by a device class, its internal memory card may be represented by a storage class, each xe2x80x9cpicturexe2x80x9d in the memory card may be represented by a package class, and a full-resolution image, a thumbnail image file and a sound file corresponding to each xe2x80x9cpicturexe2x80x9d may be represented as item classes within a single package. Similarly, multiple storage devices in a digital video camera can each be represented as separate storage classes within a single device class. As a result, manipulation and access of storages, packages and items within a device is greatly simplified.
In another aspect, the present invention concerns an application programming interface for use in interfacing with image acquisition devices, the interface including a function to access properties of a device class, the device class representing a physical image acquisition device, a function to access properties of a storage class, the storage class representing storage areas of the image acquisition device, a function to access properties of a package class, the package class representing sets of data files stored in a storage area of the image acquisition device, and a function to access properties of an item class, the item class representing individual data files within the sets of data files stored in the storage area of the image acquisition device.
The foregoing aspect of the invention provides simple manipulation of the above-described device, storage, package and item classes by a client application and allows efficient interfacing with many types of image acquisition devices.
This brief summary has been provided so that the nature of the invention may be understood quickly. A more complete understanding of the invention can be obtained by reference to the following detailed description of the preferred embodiments thereof in connection with the attached drawings.